home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / Env.h < prev    next >
C/C++ Source or Header  |  1992-06-16  |  2KB  |  73 lines

  1. #ifndef Env_First
  2. #ifdef __GNUG__
  3. //pragma once
  4. #pragma interface
  5. #endif
  6. #define Env_First
  7.  
  8. #include "Object.h"
  9. #include "Symbol.h"
  10.  
  11. enum EnvLevel {
  12.     eEnvGlobal,
  13.     eEnvUser,
  14.     eEnvLocal,
  15.     eEnvEnvironment,
  16.     eEnvCommand,
  17.     eEnvChange
  18. };
  19.  
  20. //---- EnvRec ------------------------------------------------------------------
  21.  
  22. class EnvRec : public Object {
  23. public:
  24.     Symbol name;
  25.     char *value, *type;
  26.     EnvLevel level;
  27.     bool changed;
  28.     Object *op, **op2;
  29. public:
  30.     MetaDef(EnvRec);
  31.     EnvRec(Symbol n, char *v, char *t, EnvLevel l);
  32.     ~EnvRec();
  33.     void ChangeValue(char *v, char *t, EnvLevel l);
  34.     void InspectorId(char *buf, int bufSize);
  35.     void Read(Object *op);
  36.     void Write(Object *op);
  37.     Object *Read2();
  38.     void Write2(Object *op);
  39.     int Compare(Object*);
  40. };
  41.  
  42. //---- Env ---------------------------------------------------------------------
  43.  
  44. class Env: public Object {
  45.     static class OrdCollection *table;
  46.     static bool terminated;
  47.     
  48. public:
  49.     MetaDef(Env);
  50.     Env();
  51.     ~Env();
  52.     static void Init();
  53.     static char *getvalue(char *name);
  54.     static OrdCollection *GetTable()
  55.     { return table; }
  56.     static bool Defined(char *name)
  57.     { return Env::getvalue(name) != 0; }
  58.     static int GetValue(char *name, int dflt);
  59.     static char *GetValue(char *name, char *dflt);
  60.     static void SetValue(char *name, char *value,
  61.                 EnvLevel level= eEnvChange, char *type= 0);
  62.     static void SetValue(char *name, EnvLevel level= eEnvChange);
  63.     static void SetValue(char *name, int value);
  64.     static void SetValue(char *name, double value);
  65.     static void SetBoolValue(char *name, bool value);
  66.     static void Save();
  67.     static EnvRec *Lookup(char *n);
  68.     static void ReadFile(char *fname, EnvLevel level);
  69.     static bool Bind(Object *&op, char *name);
  70. };
  71.  
  72. #endif
  73.